{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3bc5d3e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sqlalchemy import create_engine, true\n",
    "\n",
    "from statsmodels.tsa.arima_model import ARMA\n",
    "import warnings\n",
    "from itertools import product\n",
    "from datetime import datetime, timedelta\n",
    "import calendar\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "warnings.filterwarnings('ignore')\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "\n",
    "dbserver = 'mysql+pymysql://gmgbj:G7gIVYB9Xk^7@192.168.90.193:3306/vnpy_quote'\n",
    "engine = create_engine(dbserver)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bad9f238",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "def get_bars(tscode = 'rb2205'):\n",
    "    sql = \"select * from dbbardata where symbol = '%s'  and `interval` = '1m'\" % tscode\n",
    "\n",
    "    return pd.read_sql_query(sql, engine)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "83ed4996",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>symbol</th>\n",
       "      <th>exchange</th>\n",
       "      <th>datetime</th>\n",
       "      <th>interval</th>\n",
       "      <th>volume</th>\n",
       "      <th>turnover</th>\n",
       "      <th>open_interest</th>\n",
       "      <th>open_price</th>\n",
       "      <th>high_price</th>\n",
       "      <th>low_price</th>\n",
       "      <th>close_price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5</td>\n",
       "      <td>rb2205</td>\n",
       "      <td>SHFE</td>\n",
       "      <td>2022-04-12 20:01:00</td>\n",
       "      <td>1m</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>277767.0</td>\n",
       "      <td>5094.0</td>\n",
       "      <td>5094.0</td>\n",
       "      <td>5094.0</td>\n",
       "      <td>5094.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10</td>\n",
       "      <td>rb2205</td>\n",
       "      <td>SHFE</td>\n",
       "      <td>2022-04-12 20:59:00</td>\n",
       "      <td>1m</td>\n",
       "      <td>235.0</td>\n",
       "      <td>11985000.0</td>\n",
       "      <td>277567.0</td>\n",
       "      <td>5100.0</td>\n",
       "      <td>5100.0</td>\n",
       "      <td>5100.0</td>\n",
       "      <td>5100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>12</td>\n",
       "      <td>rb2205</td>\n",
       "      <td>SHFE</td>\n",
       "      <td>2022-04-12 21:00:00</td>\n",
       "      <td>1m</td>\n",
       "      <td>1386.0</td>\n",
       "      <td>70516200.0</td>\n",
       "      <td>277373.0</td>\n",
       "      <td>5100.0</td>\n",
       "      <td>5100.0</td>\n",
       "      <td>5080.0</td>\n",
       "      <td>5086.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16</td>\n",
       "      <td>rb2205</td>\n",
       "      <td>SHFE</td>\n",
       "      <td>2022-04-12 21:01:00</td>\n",
       "      <td>1m</td>\n",
       "      <td>841.0</td>\n",
       "      <td>42746200.0</td>\n",
       "      <td>277086.0</td>\n",
       "      <td>5087.0</td>\n",
       "      <td>5088.0</td>\n",
       "      <td>5080.0</td>\n",
       "      <td>5084.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>22</td>\n",
       "      <td>rb2205</td>\n",
       "      <td>SHFE</td>\n",
       "      <td>2022-04-12 21:02:00</td>\n",
       "      <td>1m</td>\n",
       "      <td>1447.0</td>\n",
       "      <td>73506700.0</td>\n",
       "      <td>276353.0</td>\n",
       "      <td>5084.0</td>\n",
       "      <td>5085.0</td>\n",
       "      <td>5073.0</td>\n",
       "      <td>5078.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  symbol exchange            datetime interval  volume    turnover  \\\n",
       "0   5  rb2205     SHFE 2022-04-12 20:01:00       1m     0.0         0.0   \n",
       "1  10  rb2205     SHFE 2022-04-12 20:59:00       1m   235.0  11985000.0   \n",
       "2  12  rb2205     SHFE 2022-04-12 21:00:00       1m  1386.0  70516200.0   \n",
       "3  16  rb2205     SHFE 2022-04-12 21:01:00       1m   841.0  42746200.0   \n",
       "4  22  rb2205     SHFE 2022-04-12 21:02:00       1m  1447.0  73506700.0   \n",
       "\n",
       "   open_interest  open_price  high_price  low_price  close_price  \n",
       "0       277767.0      5094.0      5094.0     5094.0       5094.0  \n",
       "1       277567.0      5100.0      5100.0     5100.0       5100.0  \n",
       "2       277373.0      5100.0      5100.0     5080.0       5086.0  \n",
       "3       277086.0      5087.0      5088.0     5080.0       5084.0  \n",
       "4       276353.0      5084.0      5085.0     5073.0       5078.0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "df_rb = get_bars()\n",
    "df_rb.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5fee867c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2022-04-12 20:01:00</th>\n",
       "      <td>5094.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 20:59:00</th>\n",
       "      <td>5100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:00:00</th>\n",
       "      <td>5086.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:01:00</th>\n",
       "      <td>5084.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:02:00</th>\n",
       "      <td>5078.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      close\n",
       "datetime                   \n",
       "2022-04-12 20:01:00  5094.0\n",
       "2022-04-12 20:59:00  5100.0\n",
       "2022-04-12 21:00:00  5086.0\n",
       "2022-04-12 21:01:00  5084.0\n",
       "2022-04-12 21:02:00  5078.0"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train = df_rb[['datetime', 'close_price']]\n",
    "df_train = df_train.rename(columns={\"close_price\":'close'})\n",
    "\n",
    "df_train= df_train.set_index('datetime')\n",
    "df_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "f7b71b73",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2022-04-12 20:01:00</th>\n",
       "      <td>5094.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 20:59:00</th>\n",
       "      <td>5100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:00:00</th>\n",
       "      <td>5086.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:01:00</th>\n",
       "      <td>5084.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:02:00</th>\n",
       "      <td>5078.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 13:53:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 13:56:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 13:59:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 14:01:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 15:00:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5846 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                      close\n",
       "datetime                   \n",
       "2022-04-12 20:01:00  5094.0\n",
       "2022-04-12 20:59:00  5100.0\n",
       "2022-04-12 21:00:00  5086.0\n",
       "2022-04-12 21:01:00  5084.0\n",
       "2022-04-12 21:02:00  5078.0\n",
       "...                     ...\n",
       "2022-05-16 13:53:00  5070.0\n",
       "2022-05-16 13:56:00  5070.0\n",
       "2022-05-16 13:59:00  5070.0\n",
       "2022-05-16 14:01:00  5070.0\n",
       "2022-05-16 15:00:00  5070.0\n",
       "\n",
       "[5846 rows x 1 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#df_train.rename({\"close_price\":'close'})\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "7207257b",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "df_month = df_train.resample('M').mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "0b5c649c",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "df_Q = df_train.resample('Q').mean()\n",
    "df_A = df_train.resample('A').mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "aaff9ef6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x296c96f6ef0>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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4+2Fd5KtNrBv3830mAPLH8f7ngw+d8bEHO3zDvwX9UPT12Z6vIG//433ucu4fYxXaCX8//8TMvuzFy3ejPnsRdnexQRGCeCN9pmJl+xtx+s9XJGAODrgXcc5A++4/qB4HxvrPRtz/7ekYUvGD95wgG/jVcPJuO0pRsXYyu31x6sWFbMUdariwxs+cD4wMFP/L4oxedvLlhhz9SeZ+z6T/q+xPh+p2hfJiFcxJ2d72R5vNsacbfFmUsyZEkciYrHARkRERERERMQH0nJNoIiIiIiIiKSHkkAREREREREfURIoIiIiIiLiI0oCRUREREREfERJoIiIiIiIiI8oCRQREREREfERJYEiIiIiIiI+oiRQRERERETER5QEioiIiIiI+IiSQBERERERER9REigiIiIiIuIjSgJFRERERER8REmgiIiIiIiIjygJFBERERER8RElgSIiIiIiIj6iJFBERERERMRHlASKiIiIiIj4SEG6Awjq1q2b69+/f7rDEBGRFJg3b94W51z3dMeRLdRGioj4Q6rax4xJAvv378/cuXPTHYaIiKSAma1KdwzZRG2kiIg/pKp91HBQERERERERH1ESKCIiIiIi4iNKAkVERERERHwkY64JFBHJNdXV1ZSVlVFRUZHuUNKmpKSEPn36UFhYmO5QREQky+RyO5ru9lFJoIhIkpSVldGhQwf69++PmaU7nJRzzrF161bKysoYMGBAusMREZEsk6vtaCa0jxoOKiKSJBUVFXTt2jWnGq7mMDO6du2ak2dwRUQk+XK1Hc2E9lFJoIhIEuVaw9Vcfn/9IiLSOrnajqT7dSkJFBHxmS1btjRaVlNTQ3l5OZs2beLLL7/kjTfe4P7776e6ujrmdqqqqpIZpoiISMaK1pZWVlaybNmyNETTfEoCRURy2LJly7jqqqtCf2/ZsoWzzz6b2tra0LJXX32Vk046iTPPPJMJEyZw8803s3DhQg488ED27dsXdbuLFy/mzDPPDP1dU1OTvBchIiKSRvG0pQBPP/001113XarDaxEVhhERyVE1NTXk5eVRUFBAbW0tP/3pT6msrKSoqIgf/ehHmBnXX389p512GhMmTADgmWeeoaCggPPPPx/nHDt27KCmpoaCggIuv/xyli9fTrt27QAoKipi4sSJ1NXVUVxczPPPP5/GVysiIpJ48bal7du35+abb+aQQw7hzDPPZP369fTq1Yu6ujrKy8t555130v1SGlASKCKSox566CEee+wx1q5dy/jx41myZAkvvPACs2bNYuzYsdx8881s2rSJq666isLCQpYvX86aNWvo0qULP//5zxkyZAjV1dU88sgj9O3bl/z8fB544AHatGnDr371K/72t78xbdo0pk+fzv/8z/+k++WKiIgkXHPa0uuuu44bbrgBgBEjRvDyyy+nOfrYlASKiKTArS99wcJ1uxK6zSG9O/LLs46Mef8111zDxIkTueeeezjnnHM49NBDefHFF1m8eDFjx47l2muvpWPHjrzxxhu8+uqr/OUvf+Haa6+lS5cuvPnmm5SWlnLFFVdQVFQEQF1dHf/3f//HrFmzWLx4Meeccw5btmxhy5YtfPbZZ7z00ksJfX0iIiJB6WhHIb62dNu2bYwYMYINGzaELpVYvHgxEyZMoKamhrPPPptrr702obG3lpJAEZEctmfPHqZNm8YNN9zAu+++y5IlSxgyZAjPPfcc1dXVXHHFFcyaNYv+/fvzve99j08++YTNmzdz7rnnsmXLFsaPH88NN9zAGWecQUVFBVdddRUXX3wxl19+OaWlpaxbt46BAwfy3//93+l+qSIiIknRVFt67bXXcttttzF27FjeeOMNCgoKGDFiBK+++mq6Q49JSaCISAo0daYxGR577DGeeuopTjjhBO68805mz57Nk08+yf3338/VV1/N5MmTGTp0KJdeeil79+5lyZIljBw5kltuuYXKykpuu+02LrnkEpxzAOzatYuVK1dyyy23UFxczNy5cwHYvn176LpBERGRZEhHOwrxtaXDhg2jtrY25rQPdXV1OOfIz89PcfSxqcUWEclRP/jBDxgzZgz33HMPAAsXLmTDhg38/e9/Z9OmTRxzzDFs27aNb3/725SUlABQXl7O2rVr+fzzz5k0aRKVlZXccccdlJaWsnv3bkaMGMFLL73EWWedxYMPPsjjjz/OEUccoQRQRERyUjxt6YMPPsgLL7xAmzZtOOecc4CGVbRra2uZNGkSkydPTtfLaESttohIjsrLy6Ouri50ZvLiiy/GzLjpppsYMGAAn376KUcffTTTpk0LPaasrIwbb7yRJ554osG2Fi5cyEEHHQRAcXExP/vZzzjuuOMYOXIk//Vf/5W6FyUiIpJC8bSlV199NVdffXWDx51wwgkZ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QJvA7fZ4yWW0ZSIiIrlC7aOIiGSleBqeJ8xsuJnlA5OAz6KsM4/64SzD8YbCRFsmIiKSK9Q+iohIVoqnJ/A24GnAgBedc9OirPM8MNPMegNn4F0n4aIsExERyRVqH0VEJCs1mQQ65xbgVUCLXD4m7PYuMxsDjAfuds7tBIi2TEREJBeofRQRkWwVT09gXJxz26mvdhZzmYiIiJ+ofRQRkUyji9FFRERERER8REmgiIiIiIiIjygJFBERERER8RElgSIiIiIiIj6iJFBERERERMRHlASKiIiIiIj4iJJAERERERERH1ESKCIiIiIi4iNKAkVERERERHxESaCIiIiIiIiPKAkUERERERHxESWBIiIiIiIiPqIkUERERERExEeUBIqIiIiIiPiIkkAREREREREfURIoIiIiIiLiI0oCRUREREREfERJoIiIiIiIiI8oCRQREREREfERJYEiIiIiIiI+oiRQRERERETER5QEioiIiIiI+EiTSaCZFZjZajObHvgZama3mtkcM/tj2HpxLRMREckFah9FRCRbxdMTOAyY6pwb45wbAxQDo4DjgTIzG2dmpfEsS8orEBERSQ+1jyIikpUK4lhnBDDJzEYCq4DPgOecc87MpgFnATvjXDYtfMNmNhmYDNCvX79EvSYREZFUSFr7CGojRUQkeeLpCZwDnOKcGwXsANoAawP37QJ6AO3iXNaAc26Kc67UOVfavXv3lr4GERGRdEha+whqI0VEJHni6Qmc75yrDNxeBBThNXQA7fESyT1xLhMREckVah9FRCQrxdPwPGFmw80sH5iEdwZzVOC+4cBKYF6cy0RERHKF2kcREclK8fQE3gY8DRjwIvBrYKaZ3QecHvhZBdwRxzIREZFcofZRRESykjnnmv8gszbAROBj59zy5iyLpbS01M2dO7fZsYiISPYxs3nOudJ0x5FoyWgfQW2kiIhfpKp9jKcnsBHnXDnwj5YsExERyVVqH0VEJBvoYnQREREREREfURIoIiIiIiLiI0oCRUREREREfERJoIiIiIiIiI8oCRQREREREfERJYEiIiIiIiI+oiRQRERERETER5QEioiIiIiI+IiSQBERERERER9REigiIiIiIuIjSgJFRERERER8REmgiIiIiIiIjygJFBERERER8RElgSIiIiIiIj6iJFBERERERMRHlASKiIiIiIj4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\n",
      "text/plain": [
       "<Figure size 1080x504 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=[15, 7])\n",
    "plt.subplot(221)\n",
    "plt.plot(df_train.close, '-', label='按天')\n",
    "plt.legend()\n",
    "plt.subplot(222)\n",
    "plt.plot(df_month.close, '-', label='按月')\n",
    "plt.legend()\n",
    "plt.subplot(223)\n",
    "plt.plot(df_Q.close, '-', label='按季度')\n",
    "plt.legend()\n",
    "plt.subplot(224)\n",
    "plt.plot(df_A.close, '-', label='按年')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "8338ac77",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2022-04-12 20:01:00</th>\n",
       "      <td>5094.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 20:59:00</th>\n",
       "      <td>5100.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:00:00</th>\n",
       "      <td>5086.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:01:00</th>\n",
       "      <td>5084.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-04-12 21:02:00</th>\n",
       "      <td>5078.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 13:53:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 13:56:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 13:59:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 14:01:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2022-05-16 15:00:00</th>\n",
       "      <td>5070.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5846 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                      close\n",
       "datetime                   \n",
       "2022-04-12 20:01:00  5094.0\n",
       "2022-04-12 20:59:00  5100.0\n",
       "2022-04-12 21:00:00  5086.0\n",
       "2022-04-12 21:01:00  5084.0\n",
       "2022-04-12 21:02:00  5078.0\n",
       "...                     ...\n",
       "2022-05-16 13:53:00  5070.0\n",
       "2022-05-16 13:56:00  5070.0\n",
       "2022-05-16 13:59:00  5070.0\n",
       "2022-05-16 14:01:00  5070.0\n",
       "2022-05-16 15:00:00  5070.0\n",
       "\n",
       "[5846 rows x 1 columns]"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "394749ef",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d08cbb4e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
